package cn.b.sky.mes.em.service;

import java.util.List;

import cn.b.sky.mes.em.model.MaintainConfig;
import cn.b.sky.mes.em.model.MaintainConfigAttach;
import org.springframework.web.multipart.MultipartFile;

import cn.b.sky.mes.em.model.condition.MaintainConfigCondition;
import cn.b.sky.common.model.BatchJobReport;

public interface MaintainConfigService {
  /**
   * 
   * <strong>Title : selectMaintainConfigByCondition<br></strong>
   * <strong>Description : </strong>分页查询维护配置<br> 
   * <strong>Create on : 2015-11-5 下午02:40:28<br></strong>
   * <p>
   * @param maintainConfigCondition
   * @return
   * List<MaintainConfig>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br> 
   */
  List<MaintainConfig> selectMaintainConfigByCondition(MaintainConfigCondition maintainConfigCondition);

  /**
   * 
   * <strong>Title : selectMaintainConfigCount<br></strong>
   * <strong>Description : </strong>查询维护配置数量<br> 
   * <strong>Create on : 2015-11-5 下午02:40:59<br></strong>
   * <p>
   * @param maintainConfigCondition
   * @return
   * int
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectMaintainConfigCount(MaintainConfigCondition maintainConfigCondition);

  /**
   * 
   * <strong>Title : selectMaintainConfigByCode<br></strong>
   * <strong>Description : </strong>查询维护配置<br> 
   * <strong>Create on : 2015-11-5 下午02:41:17<br></strong>
   * <p>
   * @param siteCode
   * @param equipmentCode
   * @param strategyCode
   * @return
   * MaintainConfig
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  MaintainConfig selectMaintainConfigByCode(String siteCode, String equipmentCode, String strategyCode);

  /**
   * 
   * <strong>Title : selectMaintainConfigAttach<br></strong>
   * <strong>Description : </strong>查询维护配置附件列表<br> 
   * <strong>Create on : 2015-11-5 下午02:41:34<br></strong>
   * <p>
   * @param siteCode
   * @param equipmentCode
   * @param strategyCode
   * @return
   * List<MaintainConfigAttach>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<MaintainConfigAttach> selectMaintainConfigAttachList(String siteCode, String equipmentCode, String strategyCode);

  /**
   * 
   * <strong>Title : insertMaintainConfig<br></strong>
   * <strong>Description : </strong>新增维护配置<br> 
   * <strong>Create on : 2015-11-5 下午02:41:56<br></strong>
   * <p>
   * @param maintainConfig
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertMaintainConfig(MaintainConfig maintainConfig);

  /**
   * 
   * <strong>Title : updateMaintainConfig<br></strong>
   * <strong>Description : </strong>@方法注释说明写在此处@<br> 
   * <strong>Create on : 2015-11-5 下午02:42:28<br></strong>
   * <p>
   * @param maintainConfig
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateMaintainConfig(MaintainConfig maintainConfig);

  /**
   * 
   * <strong>Title : deleteMaintainConfig<br></strong>
   * <strong>Description : </strong>@方法注释说明写在此处@<br> 
   * <strong>Create on : 2015-11-5 下午02:50:47<br></strong>
   * <p>
   * @param siteCode
   * @param equipmentCode
   * @param strategyCode
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  BatchJobReport deleteMaintainConfig(String siteCode, String equipmentCode, String strategyCode);

  /**
   * 
   * <strong>Title : insertMaintainConfigAttach<br></strong>
   * <strong>Description : </strong>新增附件<br> 
   * <strong>Create on : 2015-11-6 上午10:14:34<br></strong>
   * <p>
   * @param maintainConfigAttach
   * @param file
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertMaintainConfigAttach(MaintainConfigAttach maintainConfigAttach, MultipartFile file);

  /**
   * 
   * <strong>Title : selectMaintainConfigAttach<br></strong>
   * <strong>Description : </strong>查询维护配置附件<br> 
   * <strong>Create on : 2015-11-6 上午10:18:10<br></strong>
   * <p>
   * @param siteCode
   * @param equipmentCode
   * @param strategyCode
   * @param attachmentCode
   * @return
   * MaintainConfigAttach
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  MaintainConfigAttach selectMaintainConfigAttach(String siteCode, String equipmentCode, String strategyCode,
      String attachmentCode);

  /**
   * 
   * <strong>Title : deleteMaintainConfigAttach<br></strong>
   * <strong>Description : </strong>删除维护配置附件<br> 
   * <strong>Create on : 2015-11-9 下午04:42:22<br></strong>
   * <p>
   * @param siteCode
   * @param equipmentCode
   * @param strategyCode
   * @param attachmentCode
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deleteMaintainConfigAttach(String siteCode, String equipmentCode, String strategyCode, String attachmentCode,
      String id);

  /**
   * 
   * <strong>Title : selectMaintainConfigByStrategyType<br></strong>
   * <strong>Description : </strong>根据策略类型查询配置（定时任务使用，不区分工厂）<br> 
   * <strong>Create on : 2015-11-9 下午04:14:14<br></strong>
   * <p>
   * @param strategyTypeECode
   * @return
   * List<MaintainConfig>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<MaintainConfig> selectMaintainConfigByStrategyType(String strategyTypeECode);

  /**
   * 
   * <strong>Title : updateMaintainConfigUsedByTask<br></strong>
   * <strong>Description : </strong>修改维护配置（任务产生时使用）<br> 
   * <strong>Create on : 2015-11-10 下午06:05:09<br></strong>
   * <p>
   * @param maintainConfig
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateMaintainConfigUsedByTask(MaintainConfig maintainConfig);

  /**
   * 
   * <strong>Title : updatePrevMaintainDate<br></strong>
   * <strong>Description : </strong>@方法注释说明写在此处@<br> 
   * <strong>Create on : 2015-11-13 上午10:41:12<br></strong>
   * <p>
   * @param maintainConfig
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updatePrevMaintainDate(MaintainConfig maintainConfig);
}
